#ifndef LCOMBOBOX_H
#define LCOMBOBOX_H

#include <QWidget>
#include <QTimer>
#include <QPushButton>
#include <QTimer>
#include "dropdown.h"

class DropDown;

//待优化：虚函数重写  继承  实现嵌入窗口功能
class LComboBox : public QWidget
{
    Q_OBJECT
public:
    explicit LComboBox(QWidget* parent=0);
    ~LComboBox();

    QString text();//获取选中文本
    void size(int w,int h);//设置下拉框大小
    void move(int x, int y);//设置控件的显示位置
    void setGeometry(int x, int y, int w, int h);//设置下拉框位置和大小
    void setTexe(QStringList list);//设置下拉框文本
    void clear();//清空下拉框内容
    void addText(QString text);//追加文本到下拉框
    void ListWidgetItemSize(int w, int h);//设置每一项的宽高
    void setTop(int top){top_ = top;}
    void setMaxCount(int maxCount){maxCount_ = maxCount;}
    int count();//获取当前列表项的总数
    void reset();//复位
    void hide2();//隐藏
    void show2();//显示
    void setCurrentRow(int index);//选中指定行数
    void setCurrentRow(QString data);//根据文本选中指定行数

private slots:
    void receDropDown(int n,QString data);
    void ifunfoldtimer();
    void on_pushButton_clicked();
    void on_buttonIcon_clicked();

signals:
    void sendLComboBox(int,QString);

protected:
    bool eventFilter(QObject *watched, QEvent *event);   //事件过滤

private:
    DropDown *dropDown;

    QPushButton *buttonIcon;
    QPushButton *pushButton;
    QTimer *ifunfoldtime;
    bool ifunfold = false;//记录判断是否展开下拉框
    int top_ = 10;//下拉框距离顶部距离
    int ListWidgetItemW = 150;//每一项的列宽
    int ListWidgetItemH = 30;//每一项的行高
    int maxCount_ = 5;//设置一个下拉框最多显示几项

    int pushButtonW = 150;//控件的宽度
    int pushButtonH = 30;//控件的高度


//    QWidget *parentwidget;//保存父窗口指针
};

#endif // LCOMBOBOX_H
//计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
